﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gunningine
{
    public abstract class Shader : RenderResource
    {
        public int Id { get; protected set; }

        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="vertexShader"></param>
        /// <param name="fragmentShader"></param>
        public Shader(TextResource vertexShader, TextResource fragmentShader)
        {
        }

        public abstract void Activate();

        public abstract void Deactivate();

        public abstract int GetUniformLocation(string name);

        public abstract void SetValueUniform(string name, int value);

        public abstract void SetValueUniform(string name, float value);

        public abstract void SetValueUniform(string name, Vector2 value);
    }
}
